<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Classes  Reference</title>
    <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="css/highlight.css" />
    <meta charset='utf-8'>
    <script src="js/jquery.min.js" defer></script>
    <script src="js/jazzy.js" defer></script>
    
  </head>
  <body>
    <a title="Classes  Reference"></a>
    <header>
      <div class="content-wrapper">
        <p><a href="index.html">CleanroomLogger Docs</a> (100% documented)</p>
        <p class="header-right"><a href="https://github.com/emaloney/CleanroomLogger"><img src="img/gh.png"/>View on GitHub</a></p>
      </div>
    </header>
    <div class="content-wrapper">
      <p id="breadcrumbs">
        <a href="index.html">CleanroomLogger Reference</a>
        <img id="carat" src="img/carat.png" />
        Classes  Reference
      </p>
    </div>
    <div class="content-wrapper">
      <nav class="sidebar">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a href="Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Classes/BasicLogConfiguration.html">BasicLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/BufferedLogEntryMessageRecorder.html">BufferedLogEntryMessageRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/BufferedLogEntryRecorder.html">BufferedLogEntryRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/BufferedLogRecorder.html">BufferedLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/BufferedMessageRecorder.html">BufferedMessageRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ConcatenatingLogFormatter.html">ConcatenatingLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ConsoleLogConfiguration.html">ConsoleLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ConsoleLogConfiguration/StandardStreamsMode.html">– StandardStreamsMode</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FieldBasedLogFormatter.html">FieldBasedLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FieldBasedLogFormatter/Field.html">– Field</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FileLogRecorder.html">FileLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/LogReceptacle.html">LogReceptacle</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/LogRecorderBase.html">LogRecorderBase</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ParsableLogFormatter.html">ParsableLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ReadableLogFormatter.html">ReadableLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/RotatingLogFileConfiguration.html">RotatingLogFileConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/RotatingLogFileRecorder.html">RotatingLogFileRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/StandardErrorLogRecorder.html">StandardErrorLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/StandardLogFormatter.html">StandardLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/StandardOutputLogRecorder.html">StandardOutputLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/StandardStreamsLogRecorder.html">StandardStreamsLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/XcodeLogConfiguration.html">XcodeLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/XcodeLogFormatter.html">XcodeLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/XcodeTraceLogFormatter.html">XcodeTraceLogFormatter</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Enums.html">Enums</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Enums/CallingThreadStyle.html">CallingThreadStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/DelimiterStyle.html">DelimiterStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/LogSeverity.html">LogSeverity</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/OSLogTypeTranslator.html">OSLogTypeTranslator</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/SeverityStyle.html">SeverityStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/SeverityStyle/TextRepresentation.html">– TextRepresentation</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/TimestampStyle.html">TimestampStyle</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Protocols/LogConfiguration.html">LogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/LogFilter.html">LogFilter</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/LogFormatter.html">LogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/LogRecorder.html">LogRecorder</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Structs.html">Structs</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Structs/CallSiteLogFormatter.html">CallSiteLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/CallingThreadLogFormatter.html">CallingThreadLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/DelimiterLogFormatter.html">DelimiterLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/LiteralLogFormatter.html">LiteralLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/Log.html">Log</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/LogChannel.html">LogChannel</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/LogEntry.html">LogEntry</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/LogEntry/Payload.html">– Payload</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/LogSeverityFilter.html">LogSeverityFilter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/OSLogRecorder.html">OSLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PayloadLogFormatter.html">PayloadLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PayloadMessageLogFormatter.html">PayloadMessageLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PayloadTraceLogFormatter.html">PayloadTraceLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PayloadValueLogFormatter.html">PayloadValueLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/ProcessIDLogFormatter.html">ProcessIDLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/ProcessNameLogFormatter.html">ProcessNameLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/SeverityLogFormatter.html">SeverityLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/StackFrameLogFormatter.html">StackFrameLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/TimestampLogFormatter.html">TimestampLogFormatter</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">
        <section>
          <section class="section">
            <h1>Classes</h1>
            <p>The following classes are available globally.</p>

          </section>
          <section class="section task-group-section">
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger20ReadableLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/ReadableLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger20ReadableLogFormatterC">ReadableLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> configured to be ideal for writing human-readable log files.</p>

<p>By default, this formatter:</p>

<ul>
<li>Uses <code>.default</code> as the <code><a href="Enums/TimestampStyle.html">TimestampStyle</a></code></li>
<li>Uses a custom <code><a href="Enums/SeverityStyle.html">SeverityStyle</a></code> that pads the capitalized severity name</li>
<li>Uses <code>.hex</code> as the <code><a href="Enums/CallingThreadStyle.html">CallingThreadStyle</a></code></li>
<li>Uses default field separator delimiters</li>
<li>Outputs the source code filename and line number of the call site</li>
</ul>

<p>Each of these settings can be overridden during instantiation.</p>

                        <a href="Classes/ReadableLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">ReadableLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Classes/StandardLogFormatter.html">StandardLogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger22XcodeTraceLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/XcodeTraceLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger22XcodeTraceLogFormatterC">XcodeTraceLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> that outputs Xcode-bound trace information for each
<code><a href="Structs/LogEntry.html">LogEntry</a></code> that has a <code>Payload</code> of <code>.trace</code>.</p>

                        <a href="Classes/XcodeTraceLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">XcodeTraceLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Classes/FieldBasedLogFormatter.html">FieldBasedLogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger21XcodeLogConfigurationC"></a>
                    <a name="//apple_ref/swift/Class/XcodeLogConfiguration" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger21XcodeLogConfigurationC">XcodeLogConfiguration</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogConfiguration.html">LogConfiguration</a></code> optimized for use when running within Xcode.</p>

                        <a href="Classes/XcodeLogConfiguration.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">XcodeLogConfiguration</span><span class="p">:</span> <span class="kt"><a href="Classes/ConsoleLogConfiguration.html">ConsoleLogConfiguration</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger23RotatingLogFileRecorderC"></a>
                    <a name="//apple_ref/swift/Class/RotatingLogFileRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger23RotatingLogFileRecorderC">RotatingLogFileRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogRecorder.html">LogRecorder</a></code> implementation that maintains a set of daily rotating log
files, kept for a user-specified number of days.</p>
<div class="aside aside-important">
    <p class="aside-title">Important</p>
    A <code>RotatingLogFileRecorder</code> instance assumes full control over
the log directory specified by its <code>directoryPath</code> property. Please see the
initializer documentation for details.

</div>

                        <a href="Classes/RotatingLogFileRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">RotatingLogFileRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/LogRecorderBase.html">LogRecorderBase</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger25StandardOutputLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/StandardOutputLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger25StandardOutputLogRecorderC">StandardOutputLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>StandardOutputLogRecorder</code> is an <code><a href="Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a></code> that writes 
log messages to the standard output stream (<q>`stdout`</q>) of the running
process.</p>

                        <a href="Classes/StandardOutputLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">StandardOutputLogRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger28RotatingLogFileConfigurationC"></a>
                    <a name="//apple_ref/swift/Class/RotatingLogFileConfiguration" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger28RotatingLogFileConfigurationC">RotatingLogFileConfiguration</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogConfiguration.html">LogConfiguration</a></code> that uses an underlying <code><a href="Classes/RotatingLogFileRecorder.html">RotatingLogFileRecorder</a></code> to
maintain a directory of log files that are rotated on a daily basis.</p>

                        <a href="Classes/RotatingLogFileConfiguration.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">RotatingLogFileConfiguration</span><span class="p">:</span> <span class="kt"><a href="Classes/BasicLogConfiguration.html">BasicLogConfiguration</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger23OutputStreamLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/OutputStreamLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger23OutputStreamLogRecorderC">OutputStreamLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>OutputStreamLogRecorder</code> logs messages by writing to the standard
output stream of the running process.</p>

                        <a href="Classes/OutputStreamLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">OutputStreamLogRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/LogRecorderBase.html">LogRecorderBase</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger21BasicLogConfigurationC"></a>
                    <a name="//apple_ref/swift/Class/BasicLogConfiguration" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger21BasicLogConfigurationC">BasicLogConfiguration</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>In case the name didn&rsquo;t give it away, the <code>BasicLogConfiguration</code> class 
provides a basic implementation of the <code><a href="Protocols/LogConfiguration.html">LogConfiguration</a></code> protocol.</p>

                        <a href="Classes/BasicLogConfiguration.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BasicLogConfiguration</span><span class="p">:</span> <span class="kt"><a href="Protocols/LogConfiguration.html">LogConfiguration</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger19BufferedLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/BufferedLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger19BufferedLogRecorderC">BufferedLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>BufferedLogRecorder</code> is a generic <code><a href="Protocols/LogRecorder.html">LogRecorder</a></code> that buffers the log
messages passed to its <code>record()</code> function.</p>

<p>Construction requires a <code>createBufferItem</code> function, which is responsible
for converting the <code><a href="Structs/LogEntry.html">LogEntry</a></code> and formatted message <code>String</code> into the
generic <code>BufferItem</code> type.</p>

<p>Three specific subclasses are also provided which will buffer a different
<code>BufferItem</code> type for each call to <code>record()</code>:</p>

<ul>
<li><code><a href="Classes/BufferedMessageRecorder.html">BufferedMessageRecorder</a></code> stores <code>String</code>s containing the formatted log
message.</li>
<li><code><a href="Classes/BufferedLogEntryRecorder.html">BufferedLogEntryRecorder</a></code> stores the <code><a href="Structs/LogEntry.html">LogEntry</a></code> values passed to <code>record()</code>.</li>
<li><code><a href="Classes/BufferedLogEntryMessageRecorder.html">BufferedLogEntryMessageRecorder</a></code> stores a <code>(LogEntry, String)</code> tuple
containing the <code><a href="Structs/LogEntry.html">LogEntry</a></code> and formatted log message.</li>
</ul>

                        <a href="Classes/BufferedLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BufferedLogRecorder</span><span class="o">&lt;</span><span class="kt">BufferItem</span><span class="o">&gt;</span><span class="p">:</span> <span class="kt"><a href="Classes/LogRecorderBase.html">LogRecorderBase</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger23BufferedMessageRecorderC"></a>
                    <a name="//apple_ref/swift/Class/BufferedMessageRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger23BufferedMessageRecorderC">BufferedMessageRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>BufferedMessageRecorder</code> buffers the formatted log messages passed to
its <code>record()</code> function.</p>

                        <a href="Classes/BufferedMessageRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BufferedMessageRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/BufferedLogRecorder.html">BufferedLogRecorder</a></span><span class="o">&lt;</span><span class="kt">String</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger24BufferedLogEntryRecorderC"></a>
                    <a name="//apple_ref/swift/Class/BufferedLogEntryRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger24BufferedLogEntryRecorderC">BufferedLogEntryRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>BufferedLogEntryRecorder</code> buffers each <code><a href="Structs/LogEntry.html">LogEntry</a></code> passed to its
<code>record()</code> function.</p>

                        <a href="Classes/BufferedLogEntryRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BufferedLogEntryRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/BufferedLogRecorder.html">BufferedLogRecorder</a></span><span class="o">&lt;</span><span class="kt"><a href="Structs/LogEntry.html">LogEntry</a></span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger31BufferedLogEntryMessageRecorderC"></a>
                    <a name="//apple_ref/swift/Class/BufferedLogEntryMessageRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger31BufferedLogEntryMessageRecorderC">BufferedLogEntryMessageRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>BufferedLogEntryMessageRecorder</code> buffers each <code><a href="Structs/LogEntry.html">LogEntry</a></code> and formatted
message passed to its <code>record()</code> function.</p>

                        <a href="Classes/BufferedLogEntryMessageRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BufferedLogEntryMessageRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/BufferedLogRecorder.html">BufferedLogRecorder</a></span><span class="o">&lt;</span><span class="p">(</span><span class="kt"><a href="Structs/LogEntry.html">LogEntry</a></span><span class="p">,</span> <span class="kt">String</span><span class="p">)</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger15FileLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/FileLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger15FileLogRecorderC">FileLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogRecorder.html">LogRecorder</a></code> implementation that appends log entries to a file.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <code>FileLogRecorder</code> is a simple log appender that provides no mechanism
for file rotation or truncation. Unless you manually manage the log file when
a <code>FileLogRecorder</code> doesn&rsquo;t have it open, you will end up with an ever-growing
file. Use a <code><a href="Classes/RotatingLogFileRecorder.html">RotatingLogFileRecorder</a></code> instead if you&rsquo;d rather not have to
concern yourself with such details.

</div>

                        <a href="Classes/FileLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">FileLogRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/LogRecorderBase.html">LogRecorderBase</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger22FieldBasedLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/FieldBasedLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger22FieldBasedLogFormatterC">FieldBasedLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>FieldBasedLogFormatter</code> provides a simple interface for constructing
a customized <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> by specifying different <em>fields</em>.</p>

<p>Let&rsquo;s say you wanted to construct a <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> that outputs the following
fields separated by tabs:</p>

<ul>
<li>The <code><a href="Structs/LogEntry.html">LogEntry</a></code>&lsquo;s <code>timestamp</code> property as a UNIX time value</li>
<li>The <code>severity</code> of the <code><a href="Structs/LogEntry.html">LogEntry</a></code> as a numeric value</li>
<li>The <code>Payload</code> of the <code><a href="Structs/LogEntry.html">LogEntry</a></code></li>
</ul>

<p>You could do this by constructing a <code>FieldBasedLogFormatter</code> as follows:</p>
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">formatter</span> <span class="o">=</span> <span class="kt">FieldBasedLogFormatter</span><span class="p">(</span><span class="nv">fields</span><span class="p">:</span> <span class="p">[</span><span class="o">.</span><span class="nf">timestamp</span><span class="p">(</span><span class="o">.</span><span class="n">unix</span><span class="p">),</span>
                                                <span class="o">.</span><span class="nf">delimiter</span><span class="p">(</span><span class="o">.</span><span class="n">tab</span><span class="p">),</span>
                                                <span class="o">.</span><span class="nf">severity</span><span class="p">(</span><span class="o">.</span><span class="n">numeric</span><span class="p">),</span>
                                                <span class="o">.</span><span class="nf">delimiter</span><span class="p">(</span><span class="o">.</span><span class="n">tab</span><span class="p">),</span>
                                                <span class="o">.</span><span class="n">payload</span><span class="p">])</span>
</code></pre>

                        <a href="Classes/FieldBasedLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">FieldBasedLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Classes/ConcatenatingLogFormatter.html">ConcatenatingLogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger13LogReceptacleC"></a>
                    <a name="//apple_ref/swift/Class/LogReceptacle" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger13LogReceptacleC">LogReceptacle</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>LogReceptacle</code>s provide the low-level interface for accepting log messages.</p>

<p>Although you could use a <code>LogReceptacle</code> directly to perform all logging
functions, the <code><a href="Structs/Log.html">Log</a></code> implementation provides a higher-level interface that&rsquo;s
more convenient to use within your code.</p>

                        <a href="Classes/LogReceptacle.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">LogReceptacle</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger25ConcatenatingLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/ConcatenatingLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger25ConcatenatingLogFormatterC">ConcatenatingLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>ConcatenatingLogFormatter</code> lets you combine the output of multiple
<code><a href="Protocols/LogFormatter.html">LogFormatter</a></code>s by concatenating their output and returning the result.</p>

                        <a href="Classes/ConcatenatingLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">ConcatenatingLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Protocols/LogFormatter.html">LogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger23ConsoleLogConfigurationC"></a>
                    <a name="//apple_ref/swift/Class/ConsoleLogConfiguration" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger23ConsoleLogConfigurationC">ConsoleLogConfiguration</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A standard <code><a href="Protocols/LogConfiguration.html">LogConfiguration</a></code> that, by default, uses the <code>os_log()</code> function
(via the <code><a href="Structs/OSLogRecorder.html">OSLogRecorder</a></code>), which is only available as of iOS 10.0, macOS 10.12, 
tvOS 10.0, and watchOS 3.0.</p>

<p>If <code>os_log()</code> is not available, or if the <code>StandardLogConfiguration</code> is
configured to bypass it, log messages will be written to either the <code>stdout</code>
or <code>stderr</code> output stream of the running process.</p>

                        <a href="Classes/ConsoleLogConfiguration.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">ConsoleLogConfiguration</span><span class="p">:</span> <span class="kt"><a href="Classes/BasicLogConfiguration.html">BasicLogConfiguration</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger26StandardStreamsLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/StandardStreamsLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger26StandardStreamsLogRecorderC">StandardStreamsLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>StandardStreamsLogRecorder</code> is a <code><a href="Protocols/LogRecorder.html">LogRecorder</a></code> that writes log messages
to either the standard output stream (<q>`stdout`</q>) or the standard error stream
(<q>`stderr`</q>) of the running process.</p>

<p>Messages are directed to the appropriate stream depending on the <code>severity</code>
property of the <code><a href="Structs/LogEntry.html">LogEntry</a></code> being recorded.</p>

<p>Messages having a severity of <code>.verbose</code>, <code>.debug</code> and <code>.info</code> will be
directed to <code>stdout</code>, while those with a severity of <code>.warning</code> and <code>.error</code>
are directed to <code>stderr</code>.</p>

                        <a href="Classes/StandardStreamsLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">StandardStreamsLogRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/LogRecorderBase.html">LogRecorderBase</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger15LogRecorderBaseC"></a>
                    <a name="//apple_ref/swift/Class/LogRecorderBase" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger15LogRecorderBaseC">LogRecorderBase</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A partial implementation of the <code><a href="Protocols/LogRecorder.html">LogRecorder</a></code> protocol.</p>

                        <a href="Classes/LogRecorderBase.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">LogRecorderBase</span><span class="p">:</span> <span class="kt"><a href="Protocols/LogRecorder.html">LogRecorder</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger24StandardErrorLogRecorderC"></a>
                    <a name="//apple_ref/swift/Class/StandardErrorLogRecorder" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger24StandardErrorLogRecorderC">StandardErrorLogRecorder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code>StandardErrorLogRecorder</code> is an <code><a href="Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a></code> that writes
log messages to the standard error stream (<q>`stderr`</q>) of the running
process.</p>

                        <a href="Classes/StandardErrorLogRecorder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">StandardErrorLogRecorder</span><span class="p">:</span> <span class="kt"><a href="Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger20StandardLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/StandardLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger20StandardLogFormatterC">StandardLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A standard <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> that provides some common customization points.</p>

                        <a href="Classes/StandardLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">StandardLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Classes/FieldBasedLogFormatter.html">FieldBasedLogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger20ParsableLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/ParsableLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger20ParsableLogFormatterC">ParsableLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> configured to be ideal for writing machine-parsable log files.</p>

<p>By default, this formatter:</p>

<ul>
<li>Uses <code>.unix</code> as the <code><a href="Enums/TimestampStyle.html">TimestampStyle</a></code></li>
<li>Uses <code>.numeric</code> as the <code><a href="Enums/SeverityStyle.html">SeverityStyle</a></code></li>
<li>Uses <code>.hex</code> as the <code><a href="Enums/CallingThreadStyle.html">CallingThreadStyle</a></code></li>
<li>Uses <code>.tab</code> as the <code><a href="Enums/DelimiterStyle.html">DelimiterStyle</a></code></li>
<li>Outputs the source code filename and line number of the call site</li>
</ul>

<p>Each of these settings can be overridden during instantiation.</p>

                        <a href="Classes/ParsableLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">ParsableLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Classes/StandardLogFormatter.html">StandardLogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger17XcodeLogFormatterC"></a>
                    <a name="//apple_ref/swift/Class/XcodeLogFormatter" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger17XcodeLogFormatterC">XcodeLogFormatter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A <code><a href="Protocols/LogFormatter.html">LogFormatter</a></code> ideal for use within Xcode. This format is not well-suited
for parsing.</p>

                        <a href="Classes/XcodeLogFormatter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">XcodeLogFormatter</span><span class="p">:</span> <span class="kt"><a href="Protocols/LogFormatter.html">LogFormatter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </section>
        </section>
        <section id="footer">
          <p>© 2015-2017 <a class="link" href="http://tech.gilt.com/" target="_blank" rel="external">Gilt Groupe</a></p>
          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.8.3</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
        </section>
      </article>
    </div>
  </body>
</div>
</html>
